home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 February: Tool Chest / Dev.CD Feb 94.toast / Tool Chest / Development Platforms / MPW Related / MPW Interfaces / CIncludes / HyperXCmd.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-09-17  |  9.9 KB  |  256 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        HyperXCmd.h
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. */
  11.  
  12. #ifndef    __HYPERXCMD__
  13. #define    __HYPERXCMD__
  14.  
  15.  
  16. /* Unlike the old days, we have to make sure we have some definitions first… */
  17.  
  18. #ifndef  __TYPES__
  19. #include <Types.h>
  20. #endif
  21.  
  22. #ifndef __EVENTS__
  23. #include <Events.h>
  24. #endif
  25.  
  26. #ifndef __TEXTEDIT__
  27. #include <TextEdit.h>
  28. #endif
  29.  
  30. #ifndef __MENUS__
  31. #include <Menus.h>
  32. #endif
  33.  
  34. #ifndef __STANDARDFILE__
  35. #include <StandardFile.h>
  36. #endif
  37.  
  38.  
  39.  
  40. /* result codes */
  41. #define xresSucc                0
  42. #define xresFail                1
  43. #define xresNotImp                2
  44.  
  45. /* XCMDBlock constants for event.what... */
  46. #define xOpenEvt                1000    /* the first event after you are created */
  47. #define xCloseEvt                1001    /* your window is being forced close (Quit?) */
  48. #define xGiveUpEditEvt            1002    /* you are losing Edit... */
  49. #define xGiveUpSoundEvt            1003    /* you are losing the sound channel... */
  50. #define xHidePalettesEvt        1004    /* someone called HideHCPalettes */
  51. #define xShowPalettesEvt        1005    /* someone called ShowHCPalettes */
  52. #define xEditUndo                1100    /* Edit——Undo */
  53. #define xEditCut                1102    /* Edit——Cut */
  54. #define xEditCopy                1103    /* Edit——Copy */
  55. #define xEditPaste                1104    /* Edit——Paste */
  56. #define xEditClear                1105    /* Edit——Clear */
  57. #define xSendEvt                1200    /* script has sent you a message (text) */
  58. #define xSetPropEvt                1201    /* set a window property */
  59. #define xGetPropEvt                1202    /* get a window property */
  60. #define xCursorWithin            1300    /* cursor is within the window */
  61. #define xMenuEvt                1400    /* user has selected an item in your menu */
  62. #define xMBarClickedEvt            1401    /* a menu is about to be shown--update if needed */
  63.  
  64. #define xShowWatchInfoEvt        1501    /* for variable and message watchers */
  65. #define xScriptErrorEvt            1502    /* place the insertion point */
  66. #define xDebugErrorEvt            1503    /* user clicked "Debug" at a complaint */
  67. #define xDebugStepEvt            1504    /* hilite the line */
  68. #define xDebugTraceEvt            1505    /* same as step but tracing */
  69. #define xDebugFinishedEvt        1506    /* script ended */
  70.  
  71. #define paletteProc                2048    /* Windoid with grow box */
  72. #define palNoGrowProc            2052    /* standard Windoid defproc */
  73. #define palZoomProc                2056    /* Windoid with zoom and grow */
  74. #define palZoomNoGrow            2060    /* Windoid with zoom and no grow */
  75. #define hasZoom                    8
  76. #define hasTallTBar                2
  77. #define toggleHilite            1
  78.  
  79.  
  80. #define maxCachedChecks            16        /* maximum number of checkpoints in a script */
  81.  
  82.  
  83. /* paramCount is set to these constants when first calling special XThings */
  84. #define xMessageWatcherID        = -2;
  85. #define xVariableWatcherID        = -3;
  86. #define xScriptEditorID            = -4;
  87. #define xDebuggerID                = -5;
  88.  
  89. /* XTalkObjectPtr->objectKind values */
  90. #define stackObj                1
  91. #define bkgndObj                2
  92. #define cardObj                    3
  93. #define fieldObj                4
  94. #define buttonObj                5
  95.  
  96.  
  97. typedef struct XCmdBlock *XCmdPtr; 
  98. struct XCmdBlock {
  99.     short paramCount;         /* If = -1 then new use for XWindoids */
  100.     Handle params[16];
  101.     Handle returnValue;
  102.     Boolean passFlag;
  103.  
  104.     Ptr entryPoint;             /* to call back to HyperCard */
  105.     short request;
  106.     short result;
  107.     long inArgs[8];
  108.     long outArgs[4];
  109. };
  110.  
  111. typedef struct XWEventInfo *XWEventInfoPtr; 
  112. struct XWEventInfo {
  113.     EventRecord event;
  114.     WindowPtr eventWindow;
  115.     long eventParams[9];
  116.     Handle eventResult;
  117. };
  118.  
  119. typedef struct XTalkObject *XTalkObjectPtr;
  120. struct XTalkObject {
  121.     short objectKind;        /* stack, bkgnd, card, field, or button */
  122.     long stackNum;            /* reference number of the source stack */
  123.     long bkgndID;
  124.     long cardID;
  125.     long buttonID;
  126.     long fieldID;
  127. };
  128.  
  129.  
  130. typedef struct CheckPts *CheckPtPtr;
  131. typedef CheckPtPtr *CheckPtHandle; 
  132. struct CheckPts {
  133.     short checks[maxCachedChecks];
  134. };
  135.  
  136. #ifdef __cplusplus
  137. extern "C" {
  138. #endif
  139.  
  140. /****  HyperTalk Utilities  ****/
  141. pascal Handle EvalExpr(XCmdPtr paramPtr, StringPtr expr);
  142. pascal void SendCardMessage(XCmdPtr paramPtr, StringPtr msg);
  143. pascal void SendHCMessage(XCmdPtr paramPtr, StringPtr msg);
  144. pascal void RunHandler(XCmdPtr paramPtr, Handle handler);
  145.  
  146. /****  Memory Utilities  ****/
  147. pascal Handle GetGlobal(XCmdPtr paramPtr, StringPtr globName);
  148. pascal void SetGlobal(XCmdPtr paramPtr, StringPtr globName, Handle globValue);
  149. pascal void ZeroBytes(XCmdPtr paramPtr, Ptr dstPtr, long longCount);
  150.  
  151. /****  String Utilities  ****/
  152. pascal void ScanToReturn(XCmdPtr paramPtr, Ptr *scanPtr);
  153. pascal void ScanToZero(XCmdPtr paramPtr, Ptr *scanPtr);
  154. pascal Boolean StringEqual(XCmdPtr paramPtr, StringPtr str1, StringPtr str2);
  155. pascal long StringLength(XCmdPtr paramPtr, Ptr strPtr);
  156. pascal Ptr StringMatch(XCmdPtr paramPtr, StringPtr pattern, Ptr target);
  157. pascal void ZeroTermHandle(XCmdPtr paramPtr, Handle hndl);                                
  158.  
  159. /****  String Conversions  ****/
  160. pascal void BoolToStr(XCmdPtr paramPtr, Boolean bool, StringPtr str);
  161. pascal void ExtToStr(XCmdPtr paramPtr, extended80 num, StringPtr str);
  162. pascal void LongToStr(XCmdPtr paramPtr, long posNum, StringPtr str);
  163. pascal void NumToHex(XCmdPtr paramPtr, long num, short nDigits, StringPtr str);
  164. pascal void NumToStr(XCmdPtr paramPtr, long num, StringPtr str);
  165. pascal Handle PasToZero(XCmdPtr paramPtr, StringPtr str);
  166. pascal void PointToStr(XCmdPtr paramPtr, Point pt, StringPtr str);                        
  167. pascal void RectToStr(XCmdPtr paramPtr, Rect *rct, StringPtr str);                        
  168. pascal void ReturnToPas(XCmdPtr paramPtr, Ptr zeroStr, StringPtr pasStr);
  169. pascal Boolean StrToBool(XCmdPtr paramPtr, StringPtr str);
  170. pascal extended80 StrToExt(XCmdPtr paramPtr, StringPtr str);
  171. pascal long StrToLong(XCmdPtr paramPtr, StringPtr str);
  172. pascal long StrToNum(XCmdPtr paramPtr, StringPtr str);
  173. pascal void StrToPoint(XCmdPtr paramPtr, StringPtr str, Point *pt);                        
  174. pascal void StrToRect(XCmdPtr paramPtr, StringPtr str, Rect *rct);                        
  175. pascal void ZeroToPas(XCmdPtr paramPtr, Ptr zeroStr, StringPtr pasStr);
  176.  
  177. /****  Field Utilities  ****/
  178. pascal Handle GetFieldByID(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID);
  179. pascal Handle GetFieldByName(XCmdPtr paramPtr, Boolean cardFieldFlag, StringPtr fieldName);
  180. pascal Handle GetFieldByNum(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldNum);
  181. pascal void SetFieldByID(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID,
  182.     Handle fieldVal);
  183. pascal void SetFieldByName(XCmdPtr paramPtr, Boolean cardFieldFlag,
  184.     StringPtr fieldName, Handle fieldVal);
  185. pascal void SetFieldByNum(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldNum,
  186.     Handle fieldVal);
  187. pascal TEHandle GetFieldTE(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID,
  188.     short fieldNum, StringPtr fieldNamePtr);                                                    
  189. pascal void SetFieldTE(XCmdPtr paramPtr, Boolean cardFieldFlag, short fieldID,
  190.     short fieldNum, StringPtr fieldNamePtr, TEHandle fieldTE);                                    
  191.  
  192. /****  Miscellaneous Utilities  ****/  /* ALL NEW */
  193. pascal void BeginXSound(XCmdPtr paramPtr, WindowPtr window);
  194. pascal void EndXSound(XCmdPtr paramPtr);
  195. pascal Boolean GetFilePath(XCmdPtr paramPtr, StringPtr fileName, short numTypes, SFTypeList typeList,
  196.     Boolean askUser, OSType *fileType, StringPtr fullName);
  197. pascal void GetXResInfo(XCmdPtr paramPtr, short *resFile, short *resID, ResType *rType, StringPtr name);
  198. pascal void Notify(XCmdPtr paramPtr);
  199. pascal void SendHCEvent(XCmdPtr paramPtr, EventRecord *event);
  200. pascal void SendWindowMessage(XCmdPtr paramPtr, WindowPtr windPtr, 
  201.     StringPtr windowName, Handle msg);
  202. pascal WindowPtr FrontDocWindow(XCmdPtr paramPtr);
  203. pascal long StackNameToNum(XCmdPtr paramPtr, StringPtr stackName);
  204. pascal short ShowHCAlert(XCmdPtr paramPtr, short dlgID, StringPtr promptStr);
  205.  
  206. /****  Creating and Disposing XWindoids  ****/  /* ALL NEW */
  207. pascal WindowPtr NewXWindow(XCmdPtr paramPtr, Rect *boundsRect, StringPtr title, 
  208.    Boolean visible, short procID, Boolean color, Boolean floating);
  209. pascal WindowPtr GetNewXWindow(XCmdPtr paramPtr, ResType templateType, short 
  210.    templateID, Boolean color, Boolean floating);
  211. pascal void CloseXWindow(XCmdPtr paramPtr, WindowPtr window);
  212.  
  213. /****  XWindoid Utilities  ****/  /* ALL NEW */
  214. pascal void HideHCPalettes(XCmdPtr paramPtr);
  215. pascal void ShowHCPalettes(XCmdPtr paramPtr);
  216. pascal void RegisterXWMenu(XCmdPtr paramPtr, WindowPtr window, MenuHandle menu, Boolean registering);
  217. pascal void SetXWIdleTime(XCmdPtr paramPtr, WindowPtr window, long interval);
  218. pascal void XWHasInterruptCode(XCmdPtr paramPtr, WindowPtr window, Boolean haveCode);
  219. pascal void XWAlwaysMoveHigh(XCmdPtr paramPtr, WindowPtr window, Boolean moveHigh);
  220. pascal void XWAllowReEntrancy(XCmdPtr paramPtr, WindowPtr window, Boolean allowSysEvts, Boolean allowHCEvts);
  221.  
  222. /****  Text Editing Utilities  ****/  /* ALL NEW */
  223. pascal void BeginXWEdit(XCmdPtr paramPtr, WindowPtr window);
  224. pascal void EndXWEdit(XCmdPtr paramPtr, WindowPtr window);
  225. pascal Ptr HCWordBreakProc(XCmdPtr paramPtr);
  226. pascal void PrintTEHandle(XCmdPtr paramPtr, TEHandle hTE, StringPtr header);
  227.  
  228. /****  Script Editor support  ****/  /* ALL NEW */
  229. pascal CheckPtHandle GetCheckPoints(XCmdPtr paramPtr);
  230. pascal void SetCheckPoints(XCmdPtr paramPtr, CheckPtHandle checkLines);
  231. pascal void FormatScript(XCmdPtr paramPtr, Handle scriptHndl, long *insertionPoint, Boolean quickFormat);
  232. pascal void SaveXWScript(XCmdPtr paramPtr, Handle scriptHndl);
  233. pascal void GetObjectName(XCmdPtr paramPtr, XTalkObjectPtr object, StringPtr objName);
  234. pascal void GetObjectScript(XCmdPtr paramPtr, XTalkObjectPtr object, Handle *scriptHndl);
  235. pascal void SetObjectScript(XCmdPtr paramPtr, XTalkObjectPtr object, Handle scriptHndl);
  236.  
  237. /****  Debugging Tools support  ****/  /* ALL NEW */
  238. pascal void AbortScript(XCmdPtr paramPtr);
  239. pascal void GoScript(XCmdPtr paramPtr);
  240. pascal void StepScript(XCmdPtr paramPtr, Boolean stepInto);
  241. pascal void CountHandlers(XCmdPtr paramPtr, short *handlerCount);
  242. pascal void GetHandlerInfo(XCmdPtr paramPtr, short handlerNum, StringPtr handlerName, 
  243.                                   StringPtr objectName, short *varCount);
  244. pascal void GetVarInfo(XCmdPtr paramPtr, short handlerNum, short varNum, StringPtr varName, 
  245.                               Boolean *isGlobal, StringPtr varValue, Handle varHndl);
  246. pascal void SetVarValue(XCmdPtr paramPtr, short handlerNum, short varNum, Handle varHndl);
  247. pascal Handle GetStackCrawl(XCmdPtr paramPtr);
  248. pascal void TraceScript(XCmdPtr paramPtr, Boolean traceInto);
  249.  
  250. #ifdef __cplusplus
  251. }
  252. #endif
  253.  
  254.  
  255. #endif
  256.